<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SPHinXsys: SPHINXsys/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SPHinXsys
   &#160;<span id="projectnumber">alpha version</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_3dc1dabd28ba78e072d14d3fcfc90454.html">SPHINXsys</a></li><li class="navelem"><a class="el" href="dir_48ea983704c43b6d88c1fa3f4d09e369.html">src</a></li><li class="navelem"><a class="el" href="dir_0a0d9ef1793521534f0094f317758287.html">shared</a></li><li class="navelem"><a class="el" href="dir_05f659066ce4fa1dc9c19bd298f55a53.html">particle_dynamics</a></li><li class="navelem"><a class="el" href="dir_7195eba4309c1334c83090581898beba.html">solid_dynamics</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">fluid_structure_interaction.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Here, we define the algorithm classes for fluid structure interaction. <br />
  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;all_particle_dynamics.h&quot;</code><br />
<code>#include &quot;<a class="el" href="base__material_8h_source.html">base_material.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="fluid__dynamics__complex_8h_source.html">fluid_dynamics_complex.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="elastic__dynamics_8h_source.html">elastic_dynamics.h</a>&quot;</code><br />
<code>#include &quot;riemann_solver.h&quot;</code><br />
</div>
<p><a href="fluid__structure__interaction_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_fluid_viscous_force_on_solid.html">SPH::solid_dynamics::FluidViscousForceOnSolid</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computing the viscous force from the fluid.  <a href="class_s_p_h_1_1solid__dynamics_1_1_fluid_viscous_force_on_solid.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_fluid_viscous_force_on_solid_in_euler.html">SPH::solid_dynamics::FluidViscousForceOnSolidInEuler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computing the viscous force from the fluid in eulerian framework.  <a href="class_s_p_h_1_1solid__dynamics_1_1_fluid_viscous_force_on_solid_in_euler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_fluid_angular_conservative_viscous_force_on_solid.html">SPH::solid_dynamics::FluidAngularConservativeViscousForceOnSolid</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computing the viscous force from the fluid.  <a href="class_s_p_h_1_1solid__dynamics_1_1_fluid_angular_conservative_viscous_force_on_solid.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_base_fluid_pressure_force_on_solid.html">SPH::solid_dynamics::BaseFluidPressureForceOnSolid&lt; RiemannSolverType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_base_fluid_pressure_force_on_solid_in_euler.html">SPH::solid_dynamics::BaseFluidPressureForceOnSolidInEuler&lt; RiemannSolverType &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template class fro computing the pressure force from the fluid with different Riemann solvers. The pressure force is added on the viscous force of the latter is computed. This class is for FSI applications to achieve smaller solid dynamics time step size compared to the fluid dynamics.  <a href="class_s_p_h_1_1solid__dynamics_1_1_base_fluid_pressure_force_on_solid_in_euler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_base_fluid_force_on_solid_update.html">SPH::solid_dynamics::BaseFluidForceOnSolidUpdate&lt; PressureForceType, ViscousForceType &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">template class for computing force from fluid with updated viscous force  <a href="class_s_p_h_1_1solid__dynamics_1_1_base_fluid_force_on_solid_update.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_total_viscous_force_on_solid.html">SPH::solid_dynamics::TotalViscousForceOnSolid</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computing the total viscous force from fluid.  <a href="class_s_p_h_1_1solid__dynamics_1_1_total_viscous_force_on_solid.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_total_force_on_solid.html">SPH::solid_dynamics::TotalForceOnSolid</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computing total force from fluid.  <a href="class_s_p_h_1_1solid__dynamics_1_1_total_force_on_solid.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_initialize_displacement.html">SPH::solid_dynamics::InitializeDisplacement</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the displacement for computing average velocity. This class is for FSI applications to achieve smaller solid dynamics time step size compared to the fluid dynamics  <a href="class_s_p_h_1_1solid__dynamics_1_1_initialize_displacement.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_update_average_velocity_and_acceleration.html">SPH::solid_dynamics::UpdateAverageVelocityAndAcceleration</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computing average velocity. This class is for FSI applications to achieve smaller solid dynamics time step size compared to the fluid dynamics.  <a href="class_s_p_h_1_1solid__dynamics_1_1_update_average_velocity_and_acceleration.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_average_velocity_and_acceleration.html">SPH::solid_dynamics::AverageVelocityAndAcceleration</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose force matching between fluid and solid dynamics. Note that the fluid time step should be larger than that of solid time step. Otherwise numerical instability may occur.  <a href="class_s_p_h_1_1solid__dynamics_1_1_average_velocity_and_acceleration.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespace_s_p_h"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_s_p_h.html">SPH</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a9c638660165ba210e7edbe80a82e8846"><td class="memItemLeft" align="right" valign="top"><a id="a9c638660165ba210e7edbe80a82e8846"></a>
typedef DataDelegateContact&lt; SolidBody, SolidParticles, Solid, FluidBody, FluidParticles, Fluid &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FSIContactData</b></td></tr>
<tr class="separator:a9c638660165ba210e7edbe80a82e8846"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a205ff8a051aac2166afeedbc1d8696af"><td class="memItemLeft" align="right" valign="top"><a id="a205ff8a051aac2166afeedbc1d8696af"></a>
typedef DataDelegateContact&lt; SolidBody, SolidParticles, Solid, EulerianFluidBody, FluidParticles, Fluid &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::EFSIContactData</b></td></tr>
<tr class="separator:a205ff8a051aac2166afeedbc1d8696af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54dc9757eb12733b66c9f51373907cd3"><td class="memItemLeft" align="right" valign="top"><a id="a54dc9757eb12733b66c9f51373907cd3"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidPressureForceOnSolid</b> = BaseFluidPressureForceOnSolid&lt; NoRiemannSolver &gt;</td></tr>
<tr class="separator:a54dc9757eb12733b66c9f51373907cd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af64692bfaa2ded8922ba52ef9bff7f83"><td class="memItemLeft" align="right" valign="top"><a id="af64692bfaa2ded8922ba52ef9bff7f83"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidPressureForceOnSolidRiemann</b> = BaseFluidPressureForceOnSolid&lt; AcousticRiemannSolver &gt;</td></tr>
<tr class="separator:af64692bfaa2ded8922ba52ef9bff7f83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a756c3b96f44a80f576c9c31abb2424b8"><td class="memItemLeft" align="right" valign="top"><a id="a756c3b96f44a80f576c9c31abb2424b8"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidPressureForceOnSolidInEuler</b> = BaseFluidPressureForceOnSolidInEuler&lt; NoRiemannSolver &gt;</td></tr>
<tr class="separator:a756c3b96f44a80f576c9c31abb2424b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac5dc57ec9b4fff588ceec15530f65cc"><td class="memItemLeft" align="right" valign="top"><a id="aac5dc57ec9b4fff588ceec15530f65cc"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidPressureForceOnSolidAcousticRiemannInEuler</b> = BaseFluidPressureForceOnSolidInEuler&lt; AcousticRiemannSolver &gt;</td></tr>
<tr class="separator:aac5dc57ec9b4fff588ceec15530f65cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae60c4c76328032e2b84cda7394eda49f"><td class="memItemLeft" align="right" valign="top"><a id="ae60c4c76328032e2b84cda7394eda49f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidPressureForceOnSolidHLLCRiemannInEuler</b> = BaseFluidPressureForceOnSolidInEuler&lt; HLLCRiemannSolverInWeaklyCompressibleFluid &gt;</td></tr>
<tr class="separator:ae60c4c76328032e2b84cda7394eda49f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa68c89d7837b83a4da2ea6b59648dbbf"><td class="memItemLeft" align="right" valign="top"><a id="aa68c89d7837b83a4da2ea6b59648dbbf"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidPressureForceOnSolidHLLCWithLimiterRiemannInEuler</b> = BaseFluidPressureForceOnSolidInEuler&lt; HLLCRiemannSolverWithLimiterInWeaklyCompressibleFluid &gt;</td></tr>
<tr class="separator:aa68c89d7837b83a4da2ea6b59648dbbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5cb8de0a2f8bd89a579fa40e46d4024"><td class="memItemLeft" align="right" valign="top"><a id="ab5cb8de0a2f8bd89a579fa40e46d4024"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidForceOnSolidUpdate</b> = BaseFluidForceOnSolidUpdate&lt; FluidPressureForceOnSolid, FluidViscousForceOnSolid &gt;</td></tr>
<tr class="separator:ab5cb8de0a2f8bd89a579fa40e46d4024"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6c171ee28bbaf4df0a251e64e708654"><td class="memItemLeft" align="right" valign="top"><a id="ad6c171ee28bbaf4df0a251e64e708654"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidForceOnSolidUpdateRiemann</b> = BaseFluidForceOnSolidUpdate&lt; FluidPressureForceOnSolidRiemann, FluidViscousForceOnSolid &gt;</td></tr>
<tr class="separator:ad6c171ee28bbaf4df0a251e64e708654"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d3298057785a49983f405fa28eb8648"><td class="memItemLeft" align="right" valign="top"><a id="a8d3298057785a49983f405fa28eb8648"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidForceOnSolidUpdateInEuler</b> = BaseFluidForceOnSolidUpdate&lt; FluidPressureForceOnSolidHLLCRiemannInEuler, FluidViscousForceOnSolidInEuler &gt;</td></tr>
<tr class="separator:a8d3298057785a49983f405fa28eb8648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa70a32904ebe4eaecdaf843a15422a06"><td class="memItemLeft" align="right" valign="top"><a id="aa70a32904ebe4eaecdaf843a15422a06"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::FluidForceOnSolidUpdateRiemannWithLimiterInEuler</b> = BaseFluidForceOnSolidUpdate&lt; FluidPressureForceOnSolidHLLCWithLimiterRiemannInEuler, FluidViscousForceOnSolidInEuler &gt;</td></tr>
<tr class="separator:aa70a32904ebe4eaecdaf843a15422a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Here, we define the algorithm classes for fluid structure interaction. <br />
 </p>
<dl class="section author"><dt>Author</dt><dd>Chi ZHang and Xiangyu Hu </dd></dl>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
